﻿//方法1
#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	int m = a > b ? a : b;
//	while (1)
//	{
//		if (0 == m % b && m % a == 0)
//			break;
//		m++;
//	}
//	printf("%d", m);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	int i = 1;
//	int m = i * a;
//	while (1)
//	{
//		m = i * a;//最小公倍数
//		if (m % b == 0)
//			break;
//		i++;
//	}
//	printf("%d", m);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	int i = 1;//最小公倍数
//	while (i*a%b != 0)
//	{
//		i++;
//	}
//	printf("%d", i*a);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	long long  a = 0;
//	long long b = 0;
//	scanf("%lld %lld", &a, &b);
//	long long i = 1;//最小公倍数
//	while (i * a % b != 0)
//	{
//		i++;
//	}
//	printf("%lld", i * a);
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//	char word[100] = { 0 };
//	//scanf("%s", word);//遇到空格就停止读取了
//	scanf("%[^\n]s", word);
//	printf("%s", word);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	char word[100] = { 0 };
//	gets(word);//尽管不支持使用，还是可以使用
//	printf("%s", word);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	char word[100] = { 0 };
//	int i = 0;
//	int ch = 0;
//	while ((ch = getchar()) != '\n')//=='\n'结束
//	{
//		word[i++] = ch;
//	}
//	printf("%s", word);
//	return 0;
//}

//❌
//#include<stdio.h>
////写逆序函数
//void reverse(char word[], int len)
//{
//	//用指针
//	char* left = word;
//	char* right = word + len - 1;
//	while (left < right)
//	{
//		int tmp = 0;
//		tmp = *left;
//		*left = *right;
//		*right = tmp;
//		left++;
//		right--;
//	}
//}
//int main()
//{
//	char word[100] = { 0 };
//	gets(word);//输入字符串
//	//1.逆序字符串整体
//	int len = strlen(word);
//	reverse(word, len);
//	//2.逆序每个单词
//	char *cur = word;
//	while (*cur)//循环每个单词
//	{
//		char* start = cur;//==word后面会改变
//		while (*cur != ' '&& *cur != '\0')//单词个数两个同时为真才为真，有一个为假即为假
//		//while (*cur != ' ' || *cur != '\0')//单词个数两个同时为假才为假，有一个为真即为真
//		//遇到*cur == ' '第一个*cur != ' '为假，但是*cur != '\0'为真整个表达式为真
//		{
//			cur++;
//		}
//		reverse(start, cur);
//		if(*cur == ' ')
//		cur++;//遇到空格下一个单词循环
//		//遇到\0结束循环
//	}
//	printf("%s", word);
//	return 0;
//}


//#include<stdio.h>
////写逆序函数
//void reverse(char *left, char *right)
//{
//	//用指针
//	while (left < right)
//	{
//		char tmp = *left;
//		*left = *right;
//		*right = tmp;
//		left++;
//		right--;
//	}
//}
//int main()
//{
//	char word[100] = { 0 };
//	gets(word);//输入字符串
//	//1.逆序字符串整体
//	int len = strlen(word);
//	reverse(word, word+len-1);
//	//2.逆序每个单词
//	char* cur = word;
//	while (*cur)//循环每个单词
//	{
//		char* start = cur;//单词首元素地址
//		while (*cur != ' ' && *cur != '\0')//单词个数两个同时为真才为真，有一个为假即为假
//			//while (*cur != ' ' || *cur != '\0')//单词个数两个同时为假才为假，有一个为真即为真
//			//遇到*cur == ' '第一个*cur != ' '为假，但是*cur != '\0'为真整个表达式为真
//		{
//			cur++;
//		}
//		char* end = cur - 1;//单词尾巴元素地址
//		reverse(start, end);
//		if (*cur == ' ')
//			cur++;//遇到空格下一个单词循环
//		//遇到\0结束循环
//	}
//	printf("%s", word);
//	return 0;
//}
//#include<stdio.h>
//void reverse(char* left, char* right)
//{
//	while (left<right)
//	{
//		char tmp = *left;
//		*left = *right;
//		*right = tmp;
//		right--;
//		left++;
//	}
//}
//int main()
//{
//	char arr[100] = { 0 };
//	gets(arr);//输入句子
//	//1.逆序每一个单词
//	// abc def higk
//	//找到单词的开始的位置
//	char* cur = arr;
//	while (*cur)
//	{
//		char* start = cur;
//		//找到单词的长度
//		while (*cur != ' ' && *cur != '\0')//循环直到找到长度
//		{
//			cur++;//地址
//		}
//		//找到结尾的位置
//		char* end = cur-1;//指针已经指向空格再看才不进入if语句，所以需要减去空格的长度
//		//char* end = arr+cur-1;
//		reverse(start, end);
//		if (*cur == ' ')
//		{
//			cur++;
//			//*cur++;
//		}
//	}
//	//2.逆序每字符串
//	char* left = arr;
//	int sz = strlen(arr);//遇到\0停止
//	char* right = arr + sz - 1;
//	reverse(left, right);
//	printf("%s", arr);
//	return 0;
//}
//1.循环和分支
//2.指针++和数值++
//3.新的思路：用指针left和right当参数